using System;
using Csla;
using Csla.Data;
using Csla.Server;
using Utpl.Syllabus.Framework;
using Utpl.Syllabus.Framework.Csla.Base;
using DataPortal = Csla.DataPortal;

namespace Utpl.Syllabus.Reconocimiento.BL
{
    /// <summary>
    /// Estereotipo: ReadOnlyList
    /// Reponsabilidad: Obtener una lista de las ReconocimientoProgramaAcademicos
    /// Autor: Luis Cuenca Macas - Enovatraining. Cia. Ltda.
    /// Fecha: 18/12/2012 10:10:12 AM
    /// </summary>
    [NotAuthorize]
    [Serializable]
    [ObjectFactory("Object=ReconocimientoProgramaAcademicoList;Assembly=Utpl.Syllabus.Reconocimiento.BL")]
    public class ReconocimientoProgramaAcademicoList : SyReadOnlyRootListBase<ReconocimientoProgramaAcademicoList, ReconocimientoProgramaAcademicoInfo>
    {
        #region Factory Methods

        /// <summary>
        /// Obtiene todas las ReconocimientoProgramaAcademicos para un programa academico destino
        /// </summary>
        /// <returns></returns>
        public static ReconocimientoProgramaAcademicoList Get(int padre)
        {
            return DataPortal.Fetch<ReconocimientoProgramaAcademicoList>(new SingleCriteria<ReconocimientoProgramaAcademicoList, int>(padre));
        }

        private ReconocimientoProgramaAcademicoList()
        { /* require use of factory methods */ }

        #endregion
    }

    /// <summary>
    /// Estereotipo: ReadOnlyChild
    /// Reponsabilidad: ReconocimientoProgramaAcademico info
    /// Autor: Luis Cuenca Macas - Enovatraining. Cia. Ltda.
    /// Fecha: 18/12/2012 10:10:12 AM
    /// </summary>
    [Serializable]
    [ObjectFactory("Object=ReconocimientoProgramaAcademicoInfo;Assembly=Utpl.Syllabus.Reconocimiento.BL")]
    public class ReconocimientoProgramaAcademicoInfo : SyReadOnlyChildBase<ReconocimientoProgramaAcademicoInfo>
    {
        #region Business Methods
        
        #region < PROPIEDADES >
        
        /// <summary>
        /// Identificador del plan de estudio origen
        /// </summary>
        public int ProgramaAcademicoId { get; internal set; }
        
        /// <summary>
        /// Nombre del plan de estudio
        /// </summary>
        public string Nombre { get; internal set; }

        /// <summary>
        /// Codigo del plan de estudio
        /// </summary>
        public string Codigo { get; internal set; }

        /// <summary>
        /// Modalidad
        /// </summary>
        public string Modalidad { get; internal set; }
        
        /// <summary>
        /// NivelAcademico
        /// </summary>
        public string NivelAcademico { get; internal set; }

        /// <summary>
        /// TipoAprobacion
        /// </summary>
        public string TipoAprobacion { get; internal set; }
        
        #endregion

        #region < LISTAS >

       
    
        #endregion

        #endregion

        #region Factory Methods

        internal static ReconocimientoProgramaAcademicoInfo GetReconocimientoProgramaAcademicoInfo(SafeDataReader childData)
        {
            return DataPortal.FetchChild<ReconocimientoProgramaAcademicoInfo>(childData);
        }

        /// <summary>
        /// Obtiene un nivel academico por su GUID
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public static ReconocimientoProgramaAcademicoInfo Get(Guid guid)
        {
            return DataPortal.Fetch<ReconocimientoProgramaAcademicoInfo>(new SingleCriteria<ReconocimientoProgramaAcademicoInfo, Guid>(guid));
        }
        private ReconocimientoProgramaAcademicoInfo()
        { /* require use of factory methods */ }

        #endregion
    }

}